↳ ITRS
↳ ITRStoIDPProof
z
lif(TRUE, x, y) → +@z(1@z, log(/@z(x, y), y))
lif(FALSE, x, y) → 0@z
log(x, y) → lif(&&(>=@z(x, y), >@z(y, 1@z)), x, y)
lif(TRUE, x0, x1)
lif(FALSE, x0, x1)
log(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
z
lif(TRUE, x, y) → +@z(1@z, log(/@z(x, y), y))
lif(FALSE, x, y) → 0@z
log(x, y) → lif(&&(>=@z(x, y), >@z(y, 1@z)), x, y)
(0) -> (1), if ((x[0] →* x[1])∧(y[0] →* y[1])∧(&&(>=@z(x[0], y[0]), >@z(y[0], 1@z)) →* TRUE))
(1) -> (0), if ((y[1] →* y[0])∧(/@z(x[1], y[1]) →* x[0]))
lif(TRUE, x0, x1)
lif(FALSE, x0, x1)
log(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDPNonInfProof
z
(0) -> (1), if ((x[0] →* x[1])∧(y[0] →* y[1])∧(&&(>=@z(x[0], y[0]), >@z(y[0], 1@z)) →* TRUE))
(1) -> (0), if ((y[1] →* y[0])∧(/@z(x[1], y[1]) →* x[0]))
lif(TRUE, x0, x1)
lif(FALSE, x0, x1)
log(x0, x1)
(1) (LOG(x[0], y[0])≥NonInfC∧LOG(x[0], y[0])≥LIF(&&(>=@z(x[0], y[0]), >@z(y[0], 1@z)), x[0], y[0])∧(UIncreasing(LIF(&&(>=@z(x[0], y[0]), >@z(y[0], 1@z)), x[0], y[0])), ≥))
(2) ((UIncreasing(LIF(&&(>=@z(x[0], y[0]), >@z(y[0], 1@z)), x[0], y[0])), ≥)∧0 ≥ 0∧0 ≥ 0)
(3) ((UIncreasing(LIF(&&(>=@z(x[0], y[0]), >@z(y[0], 1@z)), x[0], y[0])), ≥)∧0 ≥ 0∧0 ≥ 0)
(4) (0 ≥ 0∧0 ≥ 0∧(UIncreasing(LIF(&&(>=@z(x[0], y[0]), >@z(y[0], 1@z)), x[0], y[0])), ≥))
(5) (0 = 0∧(UIncreasing(LIF(&&(>=@z(x[0], y[0]), >@z(y[0], 1@z)), x[0], y[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 = 0∧0 = 0∧0 = 0)
(6) (/@z(x[1], y[1])=x[0]1∧y[1]=y[0]1∧y[0]=y[1]∧x[0]=x[1]∧&&(>=@z(x[0], y[0]), >@z(y[0], 1@z))=TRUE ⇒ LIF(TRUE, x[1], y[1])≥NonInfC∧LIF(TRUE, x[1], y[1])≥LOG(/@z(x[1], y[1]), y[1])∧(UIncreasing(LOG(/@z(x[1], y[1]), y[1])), ≥))
(7) (>=@z(x[0], y[0])=TRUE∧>@z(y[0], 1@z)=TRUE ⇒ LIF(TRUE, x[0], y[0])≥NonInfC∧LIF(TRUE, x[0], y[0])≥LOG(/@z(x[0], y[0]), y[0])∧(UIncreasing(LOG(/@z(x[1], y[1]), y[1])), ≥))
(8) (x[0] + (-1)y[0] ≥ 0∧-2 + y[0] ≥ 0 ⇒ (UIncreasing(LOG(/@z(x[1], y[1]), y[1])), ≥)∧(-1)Bound + (-1)y[0] + (2)x[0] ≥ 0∧-1 + (2)x[0] + (-2)max{x[0], (-1)x[0]} + (2)min{max{y[0], (-1)y[0]} + -1, max{x[0], (-1)x[0]}} ≥ 0)
(9) (x[0] + (-1)y[0] ≥ 0∧-2 + y[0] ≥ 0 ⇒ (UIncreasing(LOG(/@z(x[1], y[1]), y[1])), ≥)∧(-1)Bound + (-1)y[0] + (2)x[0] ≥ 0∧-1 + (2)x[0] + (-2)max{x[0], (-1)x[0]} + (2)min{max{y[0], (-1)y[0]} + -1, max{x[0], (-1)x[0]}} ≥ 0)
(10) ((2)y[0] ≥ 0∧-2 + y[0] ≥ 0∧(2)x[0] ≥ 0∧x[0] + (-1)y[0] ≥ 0 ⇒ (UIncreasing(LOG(/@z(x[1], y[1]), y[1])), ≥)∧(-1)Bound + (-1)y[0] + (2)x[0] ≥ 0∧-3 + (2)y[0] ≥ 0)
(11) (4 + (2)y[0] ≥ 0∧y[0] ≥ 0∧(2)x[0] ≥ 0∧x[0] + -2 + (-1)y[0] ≥ 0 ⇒ (UIncreasing(LOG(/@z(x[1], y[1]), y[1])), ≥)∧-2 + (-1)Bound + (-1)y[0] + (2)x[0] ≥ 0∧1 + (2)y[0] ≥ 0)
(12) (4 + (2)y[0] ≥ 0∧y[0] ≥ 0∧4 + (2)y[0] + (2)x[0] ≥ 0∧x[0] ≥ 0 ⇒ (UIncreasing(LOG(/@z(x[1], y[1]), y[1])), ≥)∧2 + (-1)Bound + y[0] + (2)x[0] ≥ 0∧1 + (2)y[0] ≥ 0)
POL(>=@z(x1, x2)) = -1
POL(TRUE) = -1
POL(&&(x1, x2)) = -1
POL(LOG(x1, x2)) = (-1)x2 + (2)x1
POL(LIF(x1, x2, x3)) = -1 + (-1)x3 + (2)x2 + (-1)x1
POL(FALSE) = -1
POL(1@z) = 1
POL(undefined) = -1
POL(>@z(x1, x2)) = -1
Polynomial Interpretations with Context Sensitive Arithemetic Replacement
POL(TermCSAR-Mode @ Context)
POL(/@z(x1, y[0])1 @ {LOG_2/0}) = max{x1, (-1)x1} + (-1)min{-1 + max{x2, (-1)x2}, max{x1, (-1)x1}}
LIF(TRUE, x[1], y[1]) → LOG(/@z(x[1], y[1]), y[1])
LIF(TRUE, x[1], y[1]) → LOG(/@z(x[1], y[1]), y[1])
LOG(x[0], y[0]) → LIF(&&(>=@z(x[0], y[0]), >@z(y[0], 1@z)), x[0], y[0])
&&(FALSE, FALSE)1 ↔ FALSE1
TRUE1 → &&(TRUE, TRUE)1
&&(FALSE, TRUE)1 ↔ FALSE1
FALSE1 → &&(TRUE, FALSE)1
/@z1 →
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDPNonInfProof
↳ IDP
↳ IDependencyGraphProof
z
lif(TRUE, x0, x1)
lif(FALSE, x0, x1)
log(x0, x1)